import { createApp } from "vue";
import App from "./App.vue";
import router from "@/router";
import { setupStore } from "@/store";
import { setupDirective } from "@/directive";
import { setupElement, setupI18n, setupPermission } from "@/plugins";
// 本地SVG图标
import "virtual:svg-icons-register";

// 样式
import "element-plus/theme-chalk/dark/css-vars.css";
import "@/styles/index.scss";
import "uno.css";
import "animate.css";

// 防止v-html 受到 xss攻击
import VueDOMPurifyHTML from "vue-dompurify-html";
// 表单设计器
import FcDesigner from "@form-create/designer";

const app = createApp(App);
// 全局注册 自定义指令(directive)
setupDirective(app);
// 全局注册 状态管理(store)
setupStore(app);
// 全局注册 element-plus组件
// (原来使用ElementPlusResolver按需引入，自动表单设计器不可使用)
setupElement(app);
// 全局注册Element-plus图标
// setupElIcons(app);
// 全局注册 表单设计器
app.use(FcDesigner);
app.use(FcDesigner.formCreate);
// 国际化
setupI18n(app);
// 注册动态路由
setupPermission();

app.use(VueDOMPurifyHTML);
app.use(router).mount("#app");
